It may be helpful to consider communications protocols and networks employed to effect data communication among communicating devices. When transmitting and receiving data among two or more devices, such as computers via modems, it is typically necessary to employ a common communications protocol or format, or at least complimentary protocols or formats. A transmitting computer or device supports a protocol, in hardware or in software, that is common or effectively conversive with the protocol supported by the receiving computer or device to effect communication of essentially uncorrupted data. To make data communication effective, protocols determine certain operating characteristics, for example, rate of transmission (in baud or bps), transmission mode, i.e., half-duplex or full-duplex mode, synchronous or asynchronous transmission, the type of error checking to be used, the data compression method, notification by a transmitting device of message termination, and notification by a receiving device that the message was received. There are a number of standard protocols available to designers for selection based on respective advantages and disadvantages and depending upon the system needs.
A protocol system model that has served as a starting reference point for many protocols in use is the Open System Interconnection (OSI) model, which defines a networking framework for implementing protocols in seven layers, commonly referred to as a stack. From lowest to highest the layers are: 1) physical layer, 2) data link layer, 3) network layer, 4) transport layer, 5) session layer, 6) presentation layer, and 7) application layer. Control is passed from one layer to the next, starting at the application layer at a first transmitting device, proceeding to the bottom physical layer, over the channel to the receiving device and back up the layer hierarchy to the application layer. The network layer, for example, may rely on the IP protocol and determine the routing of packets of data from sender to receiver via the data link layer. From the network layer, the transport layer provides a virtual error-free, point-to-point connection so that a transmitting device can send messages to a receiving device and they will arrive un-corrupted and in the correct order. The transport layer establishes and dissolves connections between communicating devices.
Asynchronous Transfer Mode (ATM) is a network technology based on transferring data in cells or packets of a fixed size. The cell used with ATM is relatively small compared to units used with older technologies. The small, constant cell size allows ATM equipment to transmit video, audio, and computer data over the same network, and assure that no single type of data hogs the line. ATM creates a fixed channel, or route, between two points whenever data transfer begins. This differs from TCP/IP, in which messages are divided into packets and each packet can take a different route from source to destination. This difference makes it easier to track and bill data usage across an ATM network, but it makes it less adaptable to sudden surges in network traffic. There are four different types of ATM service: Constant Bit Rate (CBR), Variable Bit Rate (VBR), Unspecified Bit Rate (UBR), and Available Bit Rate (ABR).
Transmission Control Protocol (TCP) over Internet Protocol (IP) (TCP/IP) is the de facto standard for the Internet and private Ethernet networks. TCP/IP was developed by DARPA for internetworking and encompasses both network layer and transport layer protocols. While TCP and IP specify two protocols at specific protocol layers, TCP/IP is often used to refer to the entire DoD protocol suite based upon these, including telnet, FTP, UDP and RDP. TCP enables two communicating devices to establish a connection and exchange streams of data. TCP effects delivery of data and in such a way that packets are delivered in the same order in which they were sent.
User Datagram Protocol (UDP) is a connectionless protocol that, like TCP, runs on top of IP networks. Unlike TCP/IP, UDP/IP provides very few error recovery services, offering instead a direct way to send and receive datagrams over an IP network. It's used primarily for broadcasting messages over a network and sending data packets efficiently.
Real-Time Transport Protocol (RTP) is an Internet protocol and provides end-to-end network transport functions suitable for applications transmitting real-time data such as audio, video or simulation data, over multicast or unicast network services. RTP alone does not address resource reservation and does not guarantee quality-of-service for real-time services, but it does provide mechanisms for the sending and receiving applications to support streaming data. Typically, RTP runs on top of the UDP protocol, although the specification is general enough to support other transport protocols. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers.
Data may be transmitted over packet networks that may comprise any number of different distributed networks, intranets, LANs, WANs, and internets. In general, an internet is a set of networks interconnected with routers. The Internet is the largest internet and is a three level hierarchy composed of backbone networks (e.g., ARPAnet, NSFNet, MILNET), mid-level networks, and stub networks. These include commercial (.com or .co), university (.ac or .edu), other research networks (.org, .net), and military (.mil) networks which span many different physical networks around the world with various protocols, chiefly the Internet Protocol (IP).
The advent of the World-Wide Web (WWW) and the use of HTML and HTTP have brought the Internet into the mainstream resulting in the Internet becoming essentially ubiquitous in modern information systems and a universal medium for users. There are many other protocols in use over the Internet supporting applications such as, for example, electronic mail, Usenet, chat, remote login, and file transfer.
There is growing interest in the transmission of voice information over data packet networks. In this technique, analog audio data is converted to digital data (e.g., by PCM encoding), and the digital data is encapsulated into packets suitable for transmission over a packet network, such as the Internet. At the receiving site, the received packets are validated, and reordered if necessary. The audio data is then extracted and presented to an output media device, such as a telephone.
RTP provides one technique for transmitting audio data over a packet network. This technique prepends an RTP header on each payload of audio data. The header provides various information concerning the audio information and the communication session. The combination of the RTP header and the audio payload form an RTP packet. In one manner, the RTP technique then encapsulates the RTP packet as a UDP packet, for example, and transmits this packet over the packet network. While UDP is suggested as an example, this is not necessary as RTP is transport independent.
FIG. 1 shows a header structure currently employed in the RTP standard. The version field (V) identifies the version of RTP in use. The padding field (P) indicates whether the packet includes additional padding information. The extension field (X) indicates whether the header includes an extension field appended thereto. The CSRC count field (CC) specifies the number of contributing source (CSRC) identifiers that follow the fixed header (where a “contributing source” is an entity that contributed to the payload contained in the packet). The marker field (M) marks significant events (such as frame boundaries) in the packet stream. The payload type field (PT) identifies the format of the RTP payload. The sequence number indicates the order that the packet was transmitted relative to other packets. That is, the transmitter increments the sequence number by 1 for each packet transmitted. The transmitter may assign a random sequence number to the first packet it sends. The timestamp field reflects the sampling instant of a first octet in the RTP data packet. The receiver may assign a random value for an initial RTP timestamp, and thereafter increment this value in a linear fashion. The SSRC is a randomly selected code that identifies the source of the RTP packet. Finally, the CSRC list identifies the contributing sources. For instance, contributing source lists may be created by packet mixers for combining audio packets from different sources into a single destination packet.
A RTP Control Protocol (RTCP) protocol augments the RTP protocol by monitoring the delivery of the RTP packets. The RTCP protocol involves the periodic transmission of control packets to participants involved in a communication session. For instance, a receiver involved in a communication session generates a control packet that identifies the fraction of packets lost in the RTP stream, the last sequence number received, the interarrival jitter, etc.
Further information regarding the RTP protocol is described in Schulzrinne, et al. Standards Track, RFC 1889 RTP January 1996, which is incorporated by reference herein in its entirety.
FIG. 2 provides a conventional application of the RTP protocol. This application includes a digital signal processor (DSP) 204, a digital processing device programmed with functionality for performing various specifically-tailored signal processing tasks (commonly on a real-time basis). The DSP 204 interfaces with both a data packet network 202 (such as the Internet) and a media device 206 (such as a telephone unit). In this configuration, the digital signal processor 204 is configured to provide RTP functionality. These functions include RTCP generation and reporting, RTP header generation and validation, time-stamp reordering, sequence generation and validation, etc.
As appreciated by the present inventor, the configuration shown in FIG. 2 may not use DSP resources in an efficient manner. Namely, as appreciated by the present inventor, RTP requires that some tasks be performed on a real-time basis. However, the RTP allows other tasks (such as various statistic-monitoring tasks) to be performed on a non-real-time basis. As appreciated by the present inventor, the combination of both non-real-time processing tasks and real-time processing tasks in a single processor complicates the processing performed by the digital signal processor, potentially leading to inefficiencies in resource utilization. These inefficiencies, in turn, may lead to increased costs of the digital signal processor, and possibly non-optimal performance from the digital signal processor.
Accordingly, there is a need in the art to provide a more effective system and method for processing audio packet data, and in a more particular embodiment, processing audio packet data according to the real time protocol.